asctime関数とctime関数は、日時情報及び、紀元(1970年1月1日00:00:00 UTC)からの経過秒数を英語表現の文字列に変換します。なお、日時情報はgmtime関数とlocaltime関数で取得することができますし、経過秒数はtime関数で取得することができます。
#include <time.h>
char *asctime(const struct tm *tm);
char *ctime(const time_t *timep);
*tmは日時情報が格納されているtm構造体を指定します。
*timepは紀元からの経過秒数を指定します。
戻り値として、英語表現の日時の文字列を返します。エラーの場合は、NULLを返します。
ctime関数は自動的にローカル時間への変換を行いますので、time関数で取得した経過秒数は、そのまま引数に指定してかまいません。
英語表現の日時の形式は、両方の関数で同じです。なお、文字列の最後に改行文字が入っていますので注意してください。
プログラム 例
#include <stdio.h> #include <time.h> int main() { time_t timep; struct tm *time_inf; /* 紀元からの経過秒数を得る */ timep = time(NULL); /* ローカル標準時へ変換 */ time_inf = localtime(&timep); /* 表示 */ printf('asctime関数:%s', asctime(time_inf)); printf('ctime関数:%s', ctime(&timep)); return 0; }
例の実行結果
$ ./asctime.exe asctime関数:Thu Jul 24 14:42:09 2008 ctime関数:Thu Jul 24 14:42:09 2008 $